
Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('proyectos', 'static/combos/componentes/proyectos');

Ext.require([
    'Ext.data.*', 'Ext.grid.*','Ext.tab.*','Ext.tip.QuickTipManager',
    'Ext.window.MessageBox','Ext.window.*', 'Ext.tip.*',
    'Ext.layout.container.Border', 'Ext.dd.*', 'Ext.form.field.ComboBox',
    'proyectos.TipoItemForm','proyectos.TipoItemGrid',
    'proyectos.FaseForm','proyectos.FaseGrid',
    'proyectos.ProyectoForm','proyectos.ProyectoGrid',
    'proyectos.AtributoForm', 'proyectos.AtributoGrid',
    'proyectos.AtributoIForm', 'proyectos.AtributoIGrid',
    'proyectos.ArchivosForm', 'proyectos.ArchivosGrid',
    'proyectos.ItemForm', 'proyectos.ItemGrid',  
    'proyectos.MiembrosForm',
    'proyectos.MiembrosGrid',
    'proyectos.DesarrolladoresForm',
    'proyectos.DesarrolladoresGrid',    
    'proyectos.LideresFGrid',
    'proyectos.FaseLForm',
    'proyectos.FaseLGrid',
    'Ext.form.FieldSet'
]);


Ext.define('DataTipoItem', {
    extend: 'Ext.data.Model',
    fields: [{
			name: 'id',
			type: 'int'
		},'nombreTipoItem']
});

Ext.define('DataFases', {
    extend: 'Ext.data.Model',
    fields: [{
			name: 'id',
			type: 'int'
		},'nombreFase']
});
Ext.onReady(function(){
    Ext.tip.QuickTipManager.init();  
	
		
    var store = Ext.create('Ext.data.Store', {
        model: 'Writer.Person',
        autoLoad: true,
        autoSync: true,
        proxy: {
            type: 'ajax',
            url: 'listar_proyectos_miembros',
            reader: {
                type: 'json',
                successProperty: 'success',
                root: 'data',
                messageProperty: 'message'
            },
        },        
        sorters: [{
            property: 'id',
            direction: 'ASC' }]        
    }); 
       
	win = Ext.create('widget.panel', {
		iconCls: 'icon-alpha',	title: 'CONFIGURACION DE PROYECTOS',
		frame:true,
		renderTo: 'comboConfiguracion',	width: 1020,  height: 390,	layout: 'border', y: 30,	x: 170,
		items: [{
			region: 'west',	xtype: 'writerform',
			itemId: 'form',	width: 370,
			listeners: {
				refresh: function() {	win.child('#grid').onRefresh();
				},
				ddVerDesarr: function(data){
					
					nombre = extraer(data, '&nombre=', '&descripcion=');
					idProyecto = extraer(data, 'id=', '&');
						winDesarrolladores = Ext.create('widget.window', {
							iconCls: 'icon-alpha',
							y: 240,	x: 250,
							title: 'DESARROLLADORES',
							closable: false,
							layout: 'fit',
							items: [PanelDesarrolladores = Ext.create('Ext.Panel', {
										width : 900,	
										height : 310,
										layout  : {type: 'hbox', align: 'stretch'},
										items : [								
											{
												region: 'west',
												xtype: 'DesarrolladoresForm',
												itemId: 'form',
												title: 'Desarrolladores - ' + nombre,
												width: 330,
												listeners: {
													
													reset: function() {
														PanelDesarrolladores.child('#grid').getSelectionModel().clearSelections();
														
													},
													ddFases: function(data){
														var grid1, grid2;
														id = extraer(data, 'id=', '&');		
														winFases = Ext.create('widget.window', {
															iconCls: 'icon-fase',
															title: 'Drag & Drop - Asignar Fases  ',
															closable: false,
															x: 400, y: 260,
															plain: true,
															layout: 'fit',
															items: [displayPanel = Ext.create('Ext.Panel', {
																		width : 550,	height : 250,
																		layout  : {	type: 'hbox',	align: 'stretch'	},
																		defaults  : { flex : 1 }, 
																		items : [
																				grid1 = Ext.create('Ext.grid.Panel', {
																					multiSelect: true,
																					viewConfig: {
																						plugins: {
																								ptype: 'gridviewdragdrop',
																								dragGroup: 'firstGridDDGroup',
																								dropGroup: 'secondGridDDGroup'
																						},
																					},
																					store: Ext.create('Ext.data.Store', {
																								model: 'DataFases',
																								autoLoad: true,
																								proxy: {
																									type: 'ajax',
																									url: 'listar_no_fases_desarrollador/'+ idProyecto + '/' + id,
																									reader: {
																										type: 'json',
																										successProperty: 'success',
																										root: 'data',
																										messageProperty: 'message'
																									},

																								}      
																							}),
																					columns:  [ 	{text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Fases No Asignadas</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																					stripeRows : true
																				}),
																				grid2 = Ext.create('Ext.grid.Panel', {
																					multiSelect: true,
																					viewConfig: {
																						plugins: {
																								ptype: 'gridviewdragdrop',
																								dragGroup: 'secondGridDDGroup',
																								dropGroup: 'firstGridDDGroup'
																							},
																					},
																					store: Ext.create('Ext.data.Store', {
																							model: 'DataFases',
																							autoLoad: true,
																							proxy: {
																								type: 'ajax',
																								url: 'listar_fases_desarrollador/'+ idProyecto + '/' + id,
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},

																							}       
																					}),
																					columns  : [ 	{text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Fases Asignadas</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																					stripeRows : true
																				})
																		],
																		dockedItems: {
																			xtype: 'toolbar',
																			dock: 'bottom',
																			items: ['->', // Fill
																			{
																				text: 'Guardar',
																				iconCls: 'icon-save',
																				handler: function(){
																					grid2.getSelectionModel().selectAll();
																					longitud= grid2.getSelectionModel().getSelection().length;
																					lista_fases = new Array(longitud);
																					i=0;
																					while(i < longitud)
																					{											
																						lista_fases[i]=grid2.getSelectionModel().getSelection()[i].data['id'];
																						i=i+1;
																					}	
																					grid2.getSelectionModel().deselectAll();											
																					Ext.Ajax.request({
																						url: 'asignar_fase_desarrollador',
																						params: {
																							id_proyecto: idProyecto,
																							id_usuario: id,
																							lista_fases:Ext.encode(lista_fases)
																						},
																						success: function() {
																							Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																												msg: 'Fases asignadas correctamente', 	icon: 'ext-mb-ok',
																							});	
																						},
																						failure: function() {
																							Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																											msg: 'Error en la asignacion de Fases ', 	icon: 'ext-mb-error',
																							});
																						}
																					})
																				}
																			},
																			{
																				text: 'Cerrar',
																				iconCls: 'icon-cerrar',
																				handler: function(){winFases.close()}
																			}]
																		}
																}),{
																border: false
															}]
														});					
														winFases.show();						
													},
													ddTiposItem: function(data){
															var grid1, grid2;
															//nombre = extraer(data, '&nombreRol=', '&descripcion=');		id = extraer(data, 'id=', '&');
															id = extraer(data, 'id=', '&');	
															winTipoItem = Ext.create('widget.window', {
																iconCls: 'icon-tipoItem',
																title: 'Drag & Drop - Asignar Tipos de Item',
																closable: false,
																x: 400, y: 260,
																plain: true,
																layout: 'fit',
																items: [displayPanel = Ext.create('Ext.Panel', {
																			width : 550,	height : 250,
																			layout  : {	type: 'hbox',	align: 'stretch'	},
																			defaults  : { flex : 1 }, 
																			items : [
																					grid1 = Ext.create('Ext.grid.Panel', {
																						multiSelect: true,
																						viewConfig: {
																							plugins: {
																									ptype: 'gridviewdragdrop',
																									dragGroup: 'firstGridDDGroup',
																									dropGroup: 'secondGridDDGroup'
																							},
																						},
																						store: Ext.create('Ext.data.Store', {
																									model: 'DataTipoItem',
																									autoLoad: true,
																									proxy: {
																										type: 'ajax',
																										url: 'listar_no_tipos_desarrollador/'+ idProyecto + '/' + id,
																										reader: {
																											type: 'json',
																											successProperty: 'success',
																											root: 'data',
																											messageProperty: 'message'
																										},

																									}      
																								}),
																						columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Tipos de Items No Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																						stripeRows : true
																					}),
																					grid2 = Ext.create('Ext.grid.Panel', {
																						multiSelect: true,
																						viewConfig: {
																							plugins: {
																									ptype: 'gridviewdragdrop',
																									dragGroup: 'secondGridDDGroup',
																									dropGroup: 'firstGridDDGroup'
																								},
																						},
																						store: Ext.create('Ext.data.Store', {
																								model: 'DataTipoItem',
																								autoLoad: true,
																								proxy: {
																									type: 'ajax',
																									url: 'listar_tipos_desarrollador/'+ idProyecto + '/' + id,
																									reader: {
																										type: 'json',
																										successProperty: 'success',
																										root: 'data',
																										messageProperty: 'message'
																									},

																								}       
																						}),
																						columns  : [ {text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Tipos de Item Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																						stripeRows : true
																					})
																			],
																			dockedItems: {
																				xtype: 'toolbar',
																				dock: 'bottom',
																				items: ['->', // Fill
																				{
																					text: 'Guardar',
																					iconCls: 'icon-save',
																					handler: function(){
																						grid2.getSelectionModel().selectAll();
																						longitud= grid2.getSelectionModel().getSelection().length;
																						lista_tiposItem = new Array(longitud);
																						i=0;
																						while(i < longitud)
																						{											
																							lista_tiposItem[i]=grid2.getSelectionModel().getSelection()[i].data['id'];
																							i=i+1;
																						}	
																						grid2.getSelectionModel().deselectAll();											
																						Ext.Ajax.request({
																							url: 'asignar_tipo_desarrollador',
																							params: {
																								id_proyecto: idProyecto,
																								id_usuario: id,
																								lista_tiposItem:Ext.encode(lista_tiposItem)
																							},
																							success: function() {
																								Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																													msg: 'Tipos de Item asignados correctamente', 	icon: 'ext-mb-ok',
																								});	
																							},
																							failure: function() {
																								Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																												msg: 'Error en la asignacion de Tipos de Item ', 	icon: 'ext-mb-error',
																								});
																							}
																						})
																					}
																				},
																				{
																					text: 'Cerrar',
																					iconCls: 'icon-cerrar',
																					handler: function(){winTipoItem.close()}
																				}]
																			}
																	}),{
																	border: false
																}]
															});					
															winTipoItem.show();						
														},	
													
												}
											}, {
												region: 'center',
												xtype: 'DesarrolladoresGrid',            
												itemId: 'grid',
												title: 'Lista de Desarrolladores ',
												flex: 1,        
												store: Ext.create('Ext.data.Store', {
																					model: 'ModeloUsuarios',
																					autoLoad: true,
																					proxy: {
																						type: 'ajax',
																						url: 'listar_miembros_desarrolladores/' + idProyecto,
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						},
																						
																					},        
																					
																					sorters: [{
																						property: 'id',
																						direction: 'ASC'
																					}]        
																				}),
												listeners: {
													selectionchange: function(selModel, selected) {
														PanelDesarrolladores.child('#form').setActiveRecord(selected[0] || null);
													},
													
													salir: function() {
														winDesarrolladores.close();
													}
												}
											}
											]
										})
										
								]
						});
						
						winDesarrolladores.show();
					
				},
				ddDesarr: function(data){
					
					nombre = extraer(data, '&nombre=', '&descripcion=');
					idProyecto = extraer(data, 'id=', '&');
						winDesarrolladores = Ext.create('widget.window', {
							iconCls: 'icon-alpha',
							y: 240,	x: 250,
							title: 'DESARROLLADORES',
							closable: false,
							layout: 'fit',
							items: [PanelDesarrolladores = Ext.create('Ext.Panel', {
										width : 900,	
										height : 310,
										layout  : {type: 'hbox', align: 'stretch'},
										items : [								
											{
												region: 'west',
												xtype: 'DesarrolladoresForm',
												itemId: 'form',
												title: 'Usuarios Candidatos - ' + nombre,
												width: 330,
												listeners: {
													
													reset: function() {
														PanelDesarrolladores.child('#grid').getSelectionModel().clearSelections();
														
													},
													ddFases: function(data){
														var grid1, grid2;
														id = extraer(data, 'id=', '&');		
														winFases = Ext.create('widget.window', {
															iconCls: 'icon-fase',
															title: 'Drag & Drop - Asignar Fases  ',
															closable: false,
															x: 400, y: 260,
															plain: true,
															layout: 'fit',
															items: [displayPanel = Ext.create('Ext.Panel', {
																		width : 550,	height : 250,
																		layout  : {	type: 'hbox',	align: 'stretch'	},
																		defaults  : { flex : 1 }, 
																		items : [
																				grid1 = Ext.create('Ext.grid.Panel', {
																					multiSelect: true,
																					viewConfig: {
																						plugins: {
																								ptype: 'gridviewdragdrop',
																								dragGroup: 'firstGridDDGroup',
																								dropGroup: 'secondGridDDGroup'
																						},
																					},
																					store: Ext.create('Ext.data.Store', {
																								model: 'DataFases',
																								autoLoad: true,
																								proxy: {
																									type: 'ajax',
																									url: 'listar_no_fases_desarrollador/'+ idProyecto + '/' + id,
																									reader: {
																										type: 'json',
																										successProperty: 'success',
																										root: 'data',
																										messageProperty: 'message'
																									},

																								}      
																							}),
																					columns:  [ 	{text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Fases No Asignadas</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																					stripeRows : true
																				}),
																				grid2 = Ext.create('Ext.grid.Panel', {
																					multiSelect: true,
																					viewConfig: {
																						plugins: {
																								ptype: 'gridviewdragdrop',
																								dragGroup: 'secondGridDDGroup',
																								dropGroup: 'firstGridDDGroup'
																							},
																					},
																					store: Ext.create('Ext.data.Store', {
																							model: 'DataFases',
																							autoLoad: true,
																							proxy: {
																								type: 'ajax',
																								url: 'listar_fases_desarrollador/'+ idProyecto + '/' + id,
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},

																							}       
																					}),
																					columns  : [ 	{text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Fases Asignadas</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																					stripeRows : true
																				})
																		],
																		dockedItems: {
																			xtype: 'toolbar',
																			dock: 'bottom',
																			items: ['->', // Fill
																			{
																				text: 'Guardar',
																				iconCls: 'icon-save',
																				handler: function(){
																					grid2.getSelectionModel().selectAll();
																					longitud= grid2.getSelectionModel().getSelection().length;
																					lista_fases = new Array(longitud);
																					i=0;
																					while(i < longitud)
																					{											
																						lista_fases[i]=grid2.getSelectionModel().getSelection()[i].data['id'];
																						i=i+1;
																					}	
																					grid2.getSelectionModel().deselectAll();											
																					Ext.Ajax.request({
																						url: 'asignar_fase_desarrollador',
																						params: {
																							id_proyecto: idProyecto,
																							id_usuario: id,
																							lista_fases:Ext.encode(lista_fases)
																						},
																						success: function() {
																							Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																												msg: 'Fases asignadas correctamente', 	icon: 'ext-mb-ok',
																							});	
																						},
																						failure: function() {
																							Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																											msg: 'Error en la asignacion de Fases ', 	icon: 'ext-mb-error',
																							});
																						}
																					})
																				}
																			},
																			{
																				text: 'Cerrar',
																				iconCls: 'icon-cerrar',
																				handler: function(){winFases.close()}
																			}]
																		}
																}),{
																border: false
															}]
														});					
														winFases.show();						
													},
													ddTiposItem: function(data){
															var grid1, grid2;
															//nombre = extraer(data, '&nombreRol=', '&descripcion=');		id = extraer(data, 'id=', '&');
															id = extraer(data, 'id=', '&');	
															winTipoItem = Ext.create('widget.window', {
																iconCls: 'icon-tipoItem',
																title: 'Drag & Drop - Asignar Tipos de Item',
																closable: false,
																x: 400, y: 260,
																plain: true,
																layout: 'fit',
																items: [displayPanel = Ext.create('Ext.Panel', {
																			width : 550,	height : 250,
																			layout  : {	type: 'hbox',	align: 'stretch'	},
																			defaults  : { flex : 1 }, 
																			items : [
																					grid1 = Ext.create('Ext.grid.Panel', {
																						multiSelect: true,
																						viewConfig: {
																							plugins: {
																									ptype: 'gridviewdragdrop',
																									dragGroup: 'firstGridDDGroup',
																									dropGroup: 'secondGridDDGroup'
																							},
																						},
																						store: Ext.create('Ext.data.Store', {
																									model: 'DataTipoItem',
																									autoLoad: true,
																									proxy: {
																										type: 'ajax',
																										url: 'listar_no_tipos_desarrollador/'+ idProyecto + '/' + id,
																										reader: {
																											type: 'json',
																											successProperty: 'success',
																											root: 'data',
																											messageProperty: 'message'
																										},

																									}      
																								}),
																						columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Tipos de Items No Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																						stripeRows : true
																					}),
																					grid2 = Ext.create('Ext.grid.Panel', {
																						multiSelect: true,
																						viewConfig: {
																							plugins: {
																									ptype: 'gridviewdragdrop',
																									dragGroup: 'secondGridDDGroup',
																									dropGroup: 'firstGridDDGroup'
																								},
																						},
																						store: Ext.create('Ext.data.Store', {
																								model: 'DataTipoItem',
																								autoLoad: true,
																								proxy: {
																									type: 'ajax',
																									url: 'listar_tipos_desarrollador/'+ idProyecto + '/' + id,
																									reader: {
																										type: 'json',
																										successProperty: 'success',
																										root: 'data',
																										messageProperty: 'message'
																									},

																								}       
																						}),
																						columns  : [ {text: "Id", hidden:true, dataIndex: 'id'},
																									{text: "<b>Tipos de Item Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																						stripeRows : true
																					})
																			],
																			dockedItems: {
																				xtype: 'toolbar',
																				dock: 'bottom',
																				items: ['->', // Fill
																				{
																					text: 'Guardar',
																					iconCls: 'icon-save',
																					handler: function(){
																						grid2.getSelectionModel().selectAll();
																						longitud= grid2.getSelectionModel().getSelection().length;
																						lista_tiposItem = new Array(longitud);
																						i=0;
																						while(i < longitud)
																						{											
																							lista_tiposItem[i]=grid2.getSelectionModel().getSelection()[i].data['id'];
																							i=i+1;
																						}	
																						grid2.getSelectionModel().deselectAll();											
																						Ext.Ajax.request({
																							url: 'asignar_tipo_desarrollador',
																							params: {
																								id_proyecto: idProyecto,
																								id_usuario: id,
																								lista_tiposItem:Ext.encode(lista_tiposItem)
																							},
																							success: function() {
																								Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																													msg: 'Tipos de Item asignados correctamente', 	icon: 'ext-mb-ok',
																								});	
																							},
																							failure: function() {
																								Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																												msg: 'Error en la asignacion de Tipos de Item ', 	icon: 'ext-mb-error',
																								});
																							}
																						})
																					}
																				},
																				{
																					text: 'Cerrar',
																					iconCls: 'icon-cerrar',
																					handler: function(){winTipoItem.close()}
																				}]
																			}
																	}),{
																	border: false
																}]
															});					
															winTipoItem.show();						
														},	
													
												}
											}, {
												region: 'center',
												xtype: 'DesarrolladoresGrid',            
												itemId: 'grid',
												title: 'Lista de Usuarios Candidatos ',
												flex: 1,        
												store: Ext.create('Ext.data.Store', {
																					model: 'ModeloUsuarios',
																					autoLoad: true,
																					proxy: {
																						type: 'ajax',
																						url: 'listarUsuarios_conRolDesarrollador',
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						},
																						
																					},        
																					
																					sorters: [{
																						property: 'id',
																						direction: 'ASC'
																					}]        
																				}),
												listeners: {
													selectionchange: function(selModel, selected) {
														PanelDesarrolladores.child('#form').setActiveRecord(selected[0] || null);
													},
													
													salir: function() {
														winDesarrolladores.close();
													}
												}
											}
											]
										})
										
								]
						});
						
						winDesarrolladores.show();
					
				},
				ddLiderF: function(data){
							
						nombre = extraer(data, '&nombre=', '&descripcion=');		idProyecto = extraer(data, 'id=', '&');
						winFases = Ext.create('widget.window', {
							iconCls: 'icon-alpha',
							y: 250,	x: 230,
							title: 'LIDERES DE FASE',
							closable: false,	
							layout: 'fit',
							items: [PanelFases = Ext.create('Ext.Panel', {
										width : 850,	height : 300,
										layout  : {	type: 'hbox',	align: 'stretch'	},
										items : [								
											{
												region: 'west',
												xtype: 'fasesLform',
												title: 'Fases - ' + nombre,
												itemId: 'Faseform',
												width: 320,
												listeners: {
													refresh: function() {
														PanelFases.child('#fasesgrid').getSelectionModel().clearSelections();		
													},
													ddVerLider: function(data){							
														idProyecto = extraer(data, '&idProyectoFase=', '&nombreFase=');
														winLideresF = Ext.create('widget.window', {
															iconCls: 'icon-alpha',
															y: 240,	x: 380,
															title: 'Ver Lideres de Fase ',
															closable: false,
															layout: 'fit',
															items: [PanelLideresF = Ext.create('Ext.Panel', {
																		width : 650,	height : 310,
																		layout  : {type: 'hbox', align: 'stretch'},
																		items : [								
																			 {
																				region: 'center',
																				xtype: 'LideresFGrid',            
																				itemId: 'grid',
																				title: 'Lista de Lideres ',
																				flex: 1,        
																				store: Ext.create('Ext.data.Store', {
																													model: 'ModeloLideresF',
																													autoLoad: true,
																													proxy: {
																														type: 'ajax',
																														url: 'listar_miembros_LiderFase/' + idProyecto,
																														reader: {
																															type: 'json',
																															successProperty: 'success',
																															root: 'data',
																															messageProperty: 'message'
																														},
																														
																													}       
																												}),
																				listeners: {
																					
																					salir: function() {
																						winLideresF.close();
																					}
																				}
																			}
																			]
																		})
																		
																]
														});
														
														winLideresF.show();
										
													},
													ddLider: function(data){
														var grid1, grid2;
														nombre = extraer(data, '&nombreFase=', '&descripcion=');		id = extraer(data, 'id=', '&');
														win2 = Ext.create('widget.window', {
															iconCls: 'icon-lider',
															x: 490, y: 260,
															title: 'Drag & Drop - Lider de Fase: ' + nombre,
															closable: false, plain: true,
															layout: 'fit',
															items: [displayPanel = Ext.create('Ext.Panel', {
																		width : 260,
																		height : 250,
																		layout  : {	type: 'hbox',	align: 'stretch'	},
																		defaults  : { flex : 1 }, 
																		items : [
																				grid1 = Ext.create('Ext.grid.Panel', {
																					multiSelect: true,
																					hidden:true,
																					viewConfig: {
																						plugins: {
																								ptype: 'gridviewdragdrop',
																								dragGroup: 'firstGridDDGroup',
																								dropGroup: 'secondGridDDGroup'
																						},
																					},
																					store: Ext.create('Ext.data.Store', {
																								model: 'DataUsuario',
																								autoLoad: true,
																								proxy: {
																									type: 'ajax',
																									url: 'listarUsuarios_conRolLiderFase/'+ id,
																									reader: {
																										type: 'json',
																										successProperty: 'success',
																										root: 'data',
																										messageProperty: 'message'
																									},

																								}      
																							}),
																					columns:  [ {text: "<b>Lideres de Fase</b>", flex: 1, sortable: true, dataIndex: 'nombreUsuario'} ],
																					stripeRows : true
																				}),
																				grid2 = Ext.create('Ext.grid.Panel', {
																					multiSelect: true,
																					viewConfig: {
																						plugins: {
																								ptype: 'gridviewdragdrop',
																								dragGroup: 'secondGridDDGroup',
																								dropGroup: 'firstGridDDGroup'
																							},
																					},
																					store: Ext.create('Ext.data.Store', {
																							model: 'DataUsuario',
																							autoLoad: true,
																							proxy: {
																								type: 'ajax',
																								url: 'mostrarLiderFase_actual/'+ id,
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},

																							}       
																					}),
																					columns  : [ {text: "<b>Lider Asignado</b>", flex: 1, sortable: true, dataIndex: 'nombreUsuario'} ],
																					stripeRows : true
																				})
																		],
																		dockedItems: {
																			xtype: 'toolbar',
																			dock: 'bottom',
																			items: ['->', // Fill
																			{
																				text: 'Asignar',
																				iconCls: 'icon-izq',
																				handler: function(){
																					this.up('panel').setWidth(520);
																					grid1.show();
																					this.hide();
																					displayPanel.down('#save').show();
																				}
																			},{
																				text: 'Guardar',
																				iconCls: 'icon-save',
																				itemId: 'save',
																				hidden:true,
																				handler: function(){
																					grid2.getSelectionModel().selectAll();
																					longitud= grid2.getSelectionModel().getSelection().length;
																					if (longitud > 1){
																						Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																												msg: 'Solo se puede asignar un Lider de Fase', 	icon: 'ext-mb-error',
																							});
																						grid2.getSelectionModel().deselectAll();
																					}
																					else{
																						lista_usuarios = new Array(longitud);
																						i=0;
																						while(i < longitud)
																						{											
																								lista_usuarios[i]=grid2.getSelectionModel().getSelection()[i].data['nombreUsuario'];
																								i=i+1;
																						}	
																						grid2.getSelectionModel().deselectAll();											
																						Ext.Ajax.request({
																							url: 'asignar_lider_fase',
																							params: {
																								id_fase: id,
																								lista_usuarios:Ext.encode(lista_usuarios)
																							},
																							success: function(response) {
																								var jsonData = Ext.JSON.decode(response.responseText);
																								var resultMessage = jsonData['mensaje'];
																								Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																													msg: resultMessage, 	icon: 'ext-mb-ok',
																								});	
																							},
																							failure: function() {
																								Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																												msg: 'Error en la asignacion del lider de Fase', 	icon: 'ext-mb-error',
																								});
																							}
																						})
																					}
																				}
																			},
																			{
																				text: 'Cerrar',
																				iconCls: 'icon-cerrar',
																				handler: function(){win2.close()}
																			}]
																		}
																}),{
																border: false
															}]
														});					
														win2.show();						
													}																
												}
												//height: 150,
											}, {
												region: 'center',
												xtype: 'fasesLgrid',            
												itemId: 'fasesgrid',
												title: 'Lista de Fases',
												flex: 1,        
												//width: 480,
												//height: 250,
												store: Ext.create('Ext.data.Store', {
														model: 'Writer.Fases',
														autoLoad: true,
														autoSync: true,
														proxy: {
															type: 'ajax',
															url: 'listar_fases_lider_proyecto/'+ idProyecto,
															reader: {
																type: 'json',
																successProperty: 'success',
																root: 'data',
																messageProperty: 'message'
															},
															writer: {
																type: 'json',
																writeAllFields: false,
																root: 'data'
															},

														},
														
														sorters: [{
															property: 'id',
															direction: 'ASC'
														}]        
													}),
												listeners: {
													selectionchange: function(selModel, selected) {
														PanelFases.child('#Faseform').setActiveRecord(selected[0] || null);
													},
													salir: function() {
														winFases.close();
														//win.child('#grid').onRefresh();
													}
												}
											}]
										})
										
								]
						});	
						PanelFases.child('#Faseform').down('#idProy').setValue(idProyecto);
						/*displayPanel.child('#Faseform').down('#tipo').store = Ext.create('Ext.data.Store', {
																					model: 'DataTipoItem',
																					autoLoad: false,
																					proxy: {
																						type: 'ajax',
																						url: 'listar_tipo_items_por_fase/'+'1',
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						}
																					}        
																					
																				});*/
						winFases.show();
					
				},
				ddMiembros: function(data){
							
						nombre = extraer(data, '&nombre=', '&descripcion=');		idProyecto = extraer(data, 'id=', '&');
						winMiembros = Ext.create('widget.window', {
							iconCls: 'icon-alpha',
							y: 240,	x: 380,
							title: 'MIEMBROS - '+ nombre,
							closable: false,
							layout: 'fit',
							items: [PanelMiembros = Ext.create('Ext.Panel', {
										width : 650,	height : 310,
										layout  : {type: 'hbox', align: 'stretch'},
										items : [								
											 {
												region: 'center',
												xtype: 'MiembrosGrid',            
												itemId: 'grid',
												title: 'Lista de Miembros ',
												flex: 1,        
												store: Ext.create('Ext.data.Store', {
																					model: 'ModeloMiembros',
																					autoLoad: true,
																					//autoSync: true,
																					proxy: {
																						type: 'ajax',
																						url: 'listar_miembros/' + idProyecto,
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						},
																						
																					},        
																					
																					sorters: [{
																						property: 'id',
																						direction: 'ASC'
																					}]        
																				}),
												listeners: {
													
													salir: function() {
														winMiembros.close();
													}
												}
											}
											]
										})
										
								]
						});
					
						winMiembros.show();
								
		
				},
				ddTipoItem: function(data) {
					nombreProyecto = extraer(data, '&nombre=', '&descripcion=');		idProyecto = extraer(data, 'id=', '&');
					win.hide();
					winTipoItem = Ext.create('widget.window', {
						iconCls: 'icon-alpha',
						y: 221,	x: 180,
						closable: false,
						title: 'TIPOS ITEM',
						items: [PanelTipoItem = Ext.create('Ext.Panel', {
									width : 985,	height : 340,
									layout  : {	type: 'hbox',	align: 'stretch'	},
									items : [								
										{
											region: 'west',
											xtype: 'tipoitemform',
											title: 'Tipos Item - ' + nombreProyecto,
											itemId: 'TipoItemform',
											width: 360,
											listeners: {
												refresh: function() {
													PanelTipoItem.child('#tipoitemgrid').onRefresh();		
												},
												reset: function() {
													PanelTipoItem.child('#tipoitemgrid').getSelectionModel().clearSelections();
													
												},
												buscar: function(data) {
													nombre= extraer(data, '&nombre=', '&nroAtributos='); nroAtributos= extraer(data, '&nroAtributos=', '&descripcion='); 
													
													
													/*Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																		msg: nroAtributos, 	icon: 'ext-mb-ok',
																});*/
													if(nombre==='') nombre='nulo';
													if(nroAtributos==='') nroAtributos='999999';
													
													PanelTipoItem.child('#tipoitemgrid').store.setProxy({
																						type: 'ajax',
																						url: 'buscar_tipo_items_por_proyecto/' + idProyecto + '/' + nombre + '/' + nroAtributos ,
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						},
																					
																					});
													PanelTipoItem.child('#tipoitemgrid').onRefresh();
													
												},
												listar: function() {
							
													PanelTipoItem.child('#tipoitemgrid').store.setProxy({
																						type: 'ajax',
																						url: 'listar_tipo_items_por_proyecto/'+ idProyecto,
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						},
																					
																					});
													PanelTipoItem.child('#tipoitemgrid').onRefresh();
													
												},
												ddImportar: function(data){
													var grid7, grid8;
													winImportar = Ext.create('widget.window', {
														iconCls: 'icon-importar',
														x: 400, y: 260,
														title: 'Drag & Drop - Importar TipoItem al proyecto: ' + nombreProyecto,
														closable: false,
														plain: true,
														layout: 'fit',
														items: [PanelTipo = Ext.create('Ext.Panel', {
																	width : 550,	height : 250,
																	layout  : {	type: 'hbox',	align: 'stretch'	},
																	defaults  : { flex : 1 }, 
																	items : [
																			grid7 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'firstGridDDGroup',
																							dropGroup: 'secondGridDDGroup'
																					},
																				},
																				store: Ext.create('Ext.data.Store', {
																							model: 'DataTipoItem',
																							autoLoad: true,
																							proxy: {
																								type: 'ajax',
																								url: 'listar_no_tipo_items_por_proyecto/' + idProyecto,
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},

																							}      
																						}),
																				columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Tipos Item de otros Proyectos</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																				stripeRows : true
																			}),
																			grid8 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'secondGridDDGroup',
																							dropGroup: 'firstGridDDGroup'
																						},
																				},
																				store: Ext.create('Ext.data.Store', {
																						model: 'DataTipoItem',
																						autoLoad: true,
																						proxy: {
																							type: 'ajax',
																							url: 'listar_tipo_items_por_proyecto',
																							reader: {
																								type: 'json',
																								successProperty: 'success',
																								root: 'data',
																								messageProperty: 'message'
																							},

																						}       
																				}),
																				columns  : [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Tipos Item a Importar</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																				stripeRows : true
																			})
																	],
																	dockedItems: {
																		xtype: 'toolbar',
																		dock: 'bottom',
																		items: ['->', // Fill
																		{
																			text: 'Guardar',
																			iconCls: 'icon-save',
																			handler: function(){
																				grid8.getSelectionModel().selectAll();
																				longitud= grid8.getSelectionModel().getSelection().length;
																				lista_tiposItem = new Array(longitud);
																				i=0;
																				while(i < longitud)
																				{											
																					lista_tiposItem[i]=grid8.getSelectionModel().getSelection()[i].data['id'];
																					i=i+1;
																				}	
																				grid8.getSelectionModel().deselectAll();											
																				Ext.Ajax.request({
																					url: 'importar_tipo_item',
																					params: {
																						id_proyecto: idProyecto,
																						lista_tiposItem:Ext.encode(lista_tiposItem)
																					},
																					success: function() {
																						Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																											msg: 'Tipos de Item importados correctamente', 	icon: 'ext-mb-ok',
																						});	
																						winImportar.close();
																						PanelTipoItem.child('#tipoitemgrid').onRefresh();
																					},
																					failure: function() {
																						Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																										msg: 'Error en la importacion de Tipos de Item ', 	icon: 'ext-mb-error',
																						});
																					}
																				})
																			}
																		},
																		{
																			text: 'Cerrar',
																			iconCls: 'icon-cerrar',
																			handler: function(){winImportar.close()}
																		}]
																	}
															}),{
															border: false
														}]
													});					
													winImportar.show();						
												},						
												Atributos: function(data) {
													nombre = extraer(data, '&nombre=', '&nroAtributos=');		id = extraer(data, 'id=', '&');
													winTipoItem.hide();
													winAtributos = Ext.create('widget.window', {
														iconCls: 'icon-alpha',								
														title: 'ATRIBUTOS TIPO ITEM',
														y: 221,	x: 180,
														closable: false,	
														plain: true,
														items: [PanelAtributos = Ext.create('Ext.Panel', {
																	width : 985,	height : 340,
																	layout  : {	type: 'hbox',	align: 'stretch'	},
																	items : [								
																		{
																			region: 'west',
																			xtype: 'atributoform',
																			title: 'Atributos - '+ nombre,
																			itemId: 'Atributoform',
																			width: 360,
																			listeners: {
																				refresh: function() {
																					PanelAtributos.child('#atributogrid').onRefresh();		
																				}																						
																			}
																		}, {
																			region: 'center',
																			xtype: 'atributogrid',            
																			itemId: 'atributogrid',
																			title: 'Lista de Atributos',
																			flex: 1,        
																			store: Ext.create('Ext.data.Store', {
																					model: 'Writer.Atributo',
																					autoLoad: true,
																					autoSync: true,
																					proxy: {
																						type: 'ajax',
																						url: 'listarAtributos_tipoItem/'+ id,
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						},
																						writer: {
																							type: 'json',
																							writeAllFields: false,
																							root: 'data'
																						},

																					},
																					
																					sorters: [{
																						property: 'id',
																						direction: 'ASC'
																					}]        
																				}),
																			listeners: {
																				selectionchange: function(selModel, selected) {
																					PanelAtributos.child('#Atributoform').setActiveRecord(selected[0] || null);
																				},
																				salir: function() {
																					winAtributos.close();
																					winTipoItem.show();
																					PanelTipoItem.child('#tipoitemgrid').onRefresh();
																				}
																			}
																		}]
																	})
																	
															]
													});	
													PanelAtributos.child('#Atributoform').down('#idTipoItem').setValue(id);
													winAtributos.show();
																		
												}
												
											}
											//height: 150,
										}, {
											region: 'center',
											xtype: 'tipoitemgrid',            
											itemId: 'tipoitemgrid',
											title: 'Lista de Tipos Item',
											flex: 1,        
											//width: 480,
											//height: 250,
											store: Ext.create('Ext.data.Store', {
													model: 'Writer.TipoItem',
													autoLoad: true,
													proxy: {
														type: 'ajax',
														url: 'listar_tipo_items_por_proyecto/'+ idProyecto,
														reader: {
															type: 'json',
															successProperty: 'success',
															root: 'data',
															messageProperty: 'message'
														},
														writer: {
															type: 'json',
															writeAllFields: false,
															root: 'data'
														},

													},
													
													sorters: [{
														property: 'id',
														direction: 'ASC'
													}]        
												}),
											listeners: {
												selectionchange: function(selModel, selected) {
													PanelTipoItem.child('#TipoItemform').setActiveRecord(selected[0] || null);
												},
												listarTodo: function() {
													PanelTipoItem.child('#TipoItemform').onListar();
													PanelTipoItem.child('#TipoItemform').onReset();
													
												},
												salir: function() {
													winTipoItem.close();
													win.show();
													//win.child('#grid').onRefresh();
												},
												buscar: function() {
													PanelTipoItem.child('#TipoItemform').onFiltrar();
												}
											}
										}]
									})
									
							]
					});	
					PanelTipoItem.child('#TipoItemform').down('#idProy').setValue(idProyecto);
					winTipoItem.show();					
				},						
				ddFases: function(data) {
					nombreProyecto = extraer(data, '&nombre=', '&descripcion=');		id_Proyecto = extraer(data, 'id=', '&');
					
					estado = extraer(this.getForm().getValues(true),'&estado=','&nroFases=')
					win.hide();
					winFases = Ext.create('widget.window', {
						iconCls: 'icon-alpha',
						y: 221,	x: 180,
						title: 'FASES',
						closable: false,	
						layout: 'fit',
						items: [PanelFases = Ext.create('Ext.Panel', {
									width : 985,	height : 340,
									layout  : {	type: 'hbox',	align: 'stretch'	},
									items : [								
										{
											region: 'west',
											xtype: 'fasesform',
											title: 'Fases - ' + nombreProyecto,
											itemId: 'Faseform',
											width: 360	,
											listeners: {
												refresh: function() {
													PanelFases.child('#fasesgrid').onRefresh();
												},
												ddItem: function(data) {
													winFases.hide();
													nombre = extraer(data, '&nombreFase=', '&descripcion=');		id = extraer(data, 'id=', '&');
													winItem = Ext.create('widget.window', {
														iconCls: 'icon-alpha',
														y: 221,
														x: 180,								
														title: 'ITEMS',
														closable: false,	
														plain: true,
														items: [PanelItem = Ext.create('Ext.Panel', {
																	width : 985,	height : 340,
																	layout  : {	type: 'hbox',	align: 'stretch'	},
																	items : [								
																		{
																			region: 'west',
																			xtype: 'itemform',
																			title: 'Items - Fase: '+ nombre,
																			itemId: 'itemform',
																			width: 360,
																			listeners: {
																				refresh: function() {
																					PanelItem.child('#itemgrid').onRefresh();		
																				},
																				reset: function() {
																					PanelItem.child('#itemgrid').getSelectionModel().clearSelections();
																					
																				},
																				fireGrafo: function(data) {
																					var winGrafo = Ext.create('widget.window', {
																						x:400,
																						y: 200,
																						resizable   : false,
																						//draggable   : false,
																						iconCls: 'icon-grafo',
																						title: 'GRAFO ITEMS',
																						closable: true,
																						bodyStyle: 'background-color: #fff;',
																						layout: 'fit',
																						items: [{
																							border: false
																						},img = Ext.create('Ext.Img',{
																						  id: 'img2',
																						   height :380,
																						   width: 540,
																						   name: 'imgx',
																						   src: 'grafo_proyecto/' + id_Proyecto
																						})]
																					});
																					winGrafo.show();  
																				},
																				buscar: function(data) {
																					nombre= extraer(data, '&nombre=', '&descripcion='); complejidad= extraer(data, '&complejidad=', '&version='); 
																					version= extraer(data, '&version=', '&estado='); estado= extraer(data, '&estado=', '&tipoItem=');
																					
																					/*Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																										msg: data, 	icon: 'ext-mb-ok',
																								});*/
																					if(nombre==='') nombre='nulo';
																					if(version==='') version='99999';
																					if(estado==='') estado='nulo';
																					if(complejidad==='') complejidad='999999';
																					
																					PanelItem.child('#itemgrid').store.setProxy({
																														type: 'ajax',
																														url: 'buscar_items_por_fases/' + id + '/' + nombre + '/' + complejidad + '/' +  version + '/' + estado ,
																														reader: {
																															type: 'json',
																															successProperty: 'success',
																															root: 'data',
																															messageProperty: 'message'
																														},
																													
																													});
																					PanelItem.child('#itemgrid').onRefresh();
																					
																				},
																				listar: function() {							
																					PanelItem.child('#itemgrid').store.setProxy({
																														type: 'ajax',
																														url: 'listar_items_por_fases/'+ id,
																														reader: {
																															type: 'json',
																															successProperty: 'success',
																															root: 'data',
																															messageProperty: 'message'
																														},
																													
																													});
																					PanelItem.child('#itemgrid').onRefresh();																					
																				},
																				ddHistorial: function(data){
																					var gridHistorial;
																					nombre = extraer(data, '&nombre=', '&descripcion='); idItem = extraer(data, 'id=', '&');
																					winHistorial = Ext.create('widget.window', {
																						iconCls: 'icon-historial',
																						x: 360, y: 250,
																						title: 'Historial del Item: ' + nombre,
																						closable: false,
																						plain: true,
																						layout: 'fit',
																						items: [PanelHistorial = Ext.create('Ext.Panel', {
																									width : 700,	height : 260,
																									layout  : {	type: 'hbox',	align: 'stretch'	},
																									defaults  : { flex : 1 }, 
																									items : [
																											gridHistorial = Ext.create('Ext.grid.Panel', {
																																																								
																												store: Ext.create('Ext.data.Store', {
																															model: 'DataHistorialItem',
																															autoLoad: true,
																															proxy: {
																																type: 'ajax',
																																url: 'listar_historial_item/' + idItem,
																																reader: {
																																	type: 'json',
																																	successProperty: 'success',
																																	root: 'data',
																																	messageProperty: 'message'
																																},

																															},
																															sorters: [{
																																	property: 'version',
																																	direction: 'DESC'
																															}]
																														}),
																												columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																															{text: "<b>Nombre</b>", width: 100, dataIndex: 'nombreItem'}, 
																															{text: "<b>Version</b>", width: 70, dataIndex: 'version'},
																															{text: "<b>Estado</b>", width: 100, dataIndex: 'estado'},
																															{text: "<b>Descripcion</b>", flex: 1, dataIndex: 'descripcion'},
																															{text: "<b>Usuario</b>", width: 100, dataIndex: 'nombreUsuario'},
																															{text: "<b>Fecha</b>", width: 120, dataIndex: 'fecha'}],																															
																															
																												stripeRows : true
																											})
																									],
																									dockedItems: {
																										xtype: 'toolbar',
																										dock: 'bottom',
																										items: ['->', // Fill
																										{
																											text: 'Cerrar',
																											iconCls: 'icon-cerrar',
																											handler: function(){winHistorial.close()}
																										}]
																									}
																							}),{
																							border: false
																						}]
																					});					
																					winHistorial.show();						
																				},
																				
																				ddAtributos: function(data) {
																					nombre = extraer(data, '&nombre=', '&descripcion='); idItem = extraer(data, 'id=', '&');
																					winAtributosI = Ext.create('widget.window', {
																						iconCls: 'icon-alpha',								
																						title: 'ATRIBUTOS ITEM',
																						y: 250,	x: 400,
																						closable: false,
																						plain: true,
																						items: [PanelAtributosI = Ext.create('Ext.Panel', {
																									width : 500,
																									height : 290,
																									layout  : {	type: 'hbox',	align: 'stretch'	},
																									items : [								
																										{
																											region: 'center',
																											xtype: 'atributoIgrid',            
																											itemId: 'atributoIgrid',
																											title: 'Lista de Atributos',
																											flex: 1,        
																											store: Ext.create('Ext.data.Store', {
																													model: 'Writer.Atributo',
																													autoLoad: true,
																													autoSync: true,
																													proxy: {
																														type: 'ajax',
																														url: 'listarAtributos_Item/'+ idItem,
																														reader: {
																															type: 'json',
																															successProperty: 'success',
																															root: 'data',
																															messageProperty: 'message'
																														},
																														writer: {
																															type: 'json',
																															writeAllFields: false,
																															root: 'data'
																														},

																													},
																													
																													sorters: [{
																														property: 'id',
																														direction: 'ASC'
																													}]        
																												}),
																											listeners: {
																												selectionchange: function(selModel, selected) {
																													PanelAtributosI.child('#AtributoIform').setActiveRecord(selected[0] || null);
																												},
																												salir: function() {
																													winAtributosI.close();
																												}
																											}
																										}]
																									})
																									
																							]
																					});	
																					//PanelAtributosI.child('#Atributoform').down('#idTipoItem').setValue(id);
																					winAtributosI.show();
																										
																				},
																				fireArchivos: function(data) {
																					nombre = extraer(data, '&nombre=', '&descripcion='); idItem = extraer(data, 'id=', '&');
																					winArchivos = Ext.create('widget.window', {
																						iconCls: 'icon-alpha',								
																						title: 'ARCHIVOS ADJUNTOS ITEM',
																						y: 260,	x: 350,
																						closable: false,
																						items: [PanelArchivos = Ext.create('Ext.Panel', {
																									width : 600,	height : 240,
																									layout  : {	type: 'hbox',	align: 'stretch'	},
																									items : [								
																										{
																											region: 'west',
																											xtype: 'archivosform',
																											title: 'Archivos - '+ nombre,
																											itemId: 'archivosform',
																											width: 280,
																											listeners: {
																												refresh: function() {
																													PanelArchivos.child('#archivosgrid').onRefresh();
																												},
																												salir: function() {
																													winArchivos.close();
																														
																												},
																												clear: function() {
																													PanelArchivos.child('#archivosgrid').getSelectionModel().clearSelections();
																												},
																												fireAdjuntar: function(data) {
																													idItem = extraer(data, 'id_item=', '&nombre=');
																													winAdjuntar = Ext.create('widget.window', {
																														width: 410,
																														iconCls: 'icon-adjuntar',
																														title: 'ARCHIVO ADJUNTO',
																														closable: true,
																														plain: true,
																														layout: 'fit',
																														items: [formPanelAdjuntar = Ext.widget('form', {
																														frame: true,
																														bodyPadding: 10,
																														fileUpload: true,
																														defaults: {
																															anchor: '100%'
																														},
																														items: [{
																																xtype:'textfield',
																																name: 'id_item',
																																fieldLabel: 'Id',
																																value: idItem,
																																hidden: true,
																														},{
																																xtype:'textfield',
																																name: 'archivo',
																																inputType:'file',
																																fieldLabel: 'Archivo Ajunto'
																														}],
																														dockedItems: [{
																															xtype: 'container',
																															dock: 'bottom',
																															layout: {
																																type: 'hbox',
																																align: 'middle'
																															},
																															items: [{
																																xtype: 'button',
																																formBind: true,
																																disabled: true,
																																text: '<b>Guardar</b>',
																																width: 70,
																																handler: function() {
																																	
																																	var form = this.up('form').getForm();
																																	form.submit({
																																		url: 'adjuntar_archivo_item',
																																		waitMsg: 'Procesando...',
																																		success: function(form, action) {
																																			Ext.Msg.show({  
																																				title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																																				msg: 'Archivo adjuntado ', //<- El mensaje  
																																				icon: 'ext-mb-ok',
																																			});
																																			winAdjuntar.close();
																																			PanelArchivos.child('#archivosgrid').onRefresh();
																																		   
																																		},
																																		failure: function(form, action) {
																																			Ext.Msg.show({  
																																			title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																																			msg: 'No se ha podido adjuntar el archivo', //<- El mensaje  
																																			icon: 'ext-mb-error',
																																		});
																																		}
																																	});
																																}
																															}]
																														}]
																													}),{
																															border: false
																														}]
																													});
																													winAdjuntar.show();
																												}																						
																											}
																										}, {
																											region: 'center',
																											xtype: 'archivosgrid',            
																											itemId: 'archivosgrid',
																											title: 'Lista de Archivos',
																											flex: 1,        
																											store: Ext.create('Ext.data.Store', {
																													model: 'Writer.Archivos',
																													autoLoad: true,
																													autoSync: true,
																													proxy: {
																														type: 'ajax',
																														url: 'listar_archivos_item/'+ idItem,
																														reader: {
																															type: 'json',
																															successProperty: 'success',
																															root: 'data',
																															messageProperty: 'message'
																														},
																														writer: {
																															type: 'json',
																															writeAllFields: false,
																															root: 'data'
																														},

																													},
																													
																													sorters: [{
																														property: 'id',
																														direction: 'ASC'
																													}]        
																												}),
																											listeners: {
																												selectionchange: function(selModel, selected) {
																													PanelArchivos.child('#archivosform').setActiveRecord(selected[0] || null);
																												},
																												salir: function() {
																													winArchivos.close();
																												},
																												reset: function() {
																													PanelArchivos.child('#archivosform').onReset();
																												}																												
																											}
																										}]
																									})
																									
																							]
																					});	
																					PanelArchivos.child('#archivosform').down('#idItem').setValue(idItem);
																					winArchivos.show();
																										
																				}
																			}
																			
																		}, {
																			region: 'center',
																			xtype: 'itemgrid',            
																			itemId: 'itemgrid',
																			title: 'Lista de Items',
																			flex: 1,        
																			store: Ext.create('Ext.data.Store', {
																					model: 'Writer.Item',
																					autoLoad: true,
																					//autoSync: true,
																					proxy: {
																						type: 'ajax',
																						url: 'listar_items_lider_proyecto/'+ id,
																						reader: {
																							type: 'json',
																							successProperty: 'success',
																							root: 'data',
																							messageProperty: 'message'
																						},
																						writer: {
																							type: 'json',
																							writeAllFields: false,
																							root: 'data'
																						},

																					},
																					
																					sorters: [{
																						property: 'numero',
																						direction: 'ASC'
																					}]        
																				}),
																			listeners: {
																				selectionchange: function(selModel, selected) {
																					PanelItem.child('#itemform').setActiveRecord(selected[0] || null);
																				},
																				listarTodo: function() {
																					PanelItem.child('#itemform').onListar();
																					//PanelItem.child('#itemform').onReset();
																					
																				},
																				salir: function() {
																					winItem.close();
																					winFases.show();
																					PanelFases.child('#fasesgrid').onRefresh();
																				},
																				buscar: function() {
																					PanelItem.child('#itemform').onFiltrar();
																				}
																			}
																		}]
																	})
																	
															]
													});	
													PanelItem.child('#itemform').down('#idFase').setValue(id);
													PanelItem.child('#itemform').down('#tipoItem').store = Ext.create('Ext.data.Store', {
																												model: 'DataTipoItem',
																												autoLoad: false,
																												proxy: {
																													type: 'ajax',
																													url: 'listar_tipo_items_por_fase/'+ id,
																													reader: {
																														type: 'json',
																														successProperty: 'success',
																														root: 'data',
																														messageProperty: 'message'
																													}
																												}        
																												
																											});
													winItem.show();
																		
												},ddReordenar: function(data){
													var grid7, grid8;
													winReordenar = Ext.create('widget.window', {
														iconCls: 'icon-reordenar',
														x: 400, y: 260,
														title: 'Reordenar Fases del proyecto: ' + nombreProyecto,
														closable: false,
														plain: true,
														layout: 'fit',
														items: [PanelTipoItem = Ext.create('Ext.Panel', {
																	width : 550,	height : 250,
																	layout  : {	type: 'hbox',	align: 'stretch'	},
																	defaults  : { flex : 1 }, 
																	items : [
																			grid7 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'firstGridDDGroup',
																							dropGroup: 'secondGridDDGroup'
																					},
																				},
																				store: Ext.create('Ext.data.Store', {
																							model: 'DataFase',
																							autoLoad: true,
																							proxy: {
																								type: 'ajax',
																								url: 'vacio',
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},

																							}      
																						}),
																				columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Nuevo Orden</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																				stripeRows : true
																			}),
																			grid8 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'secondGridDDGroup',
																							dropGroup: 'firstGridDDGroup'
																						},
																				},
																				store: Ext.create('Ext.data.Store', {
																						model: 'Writer.Fases',
																						autoLoad: true,
																						proxy: {
																							type: 'ajax',
																							url: 'listar_fases_lider_proyecto/'+ id_Proyecto,
																							reader: {
																								type: 'json',
																								successProperty: 'success',
																								root: 'data',
																								messageProperty: 'message'
																							},

																						},
																						sorters: [{
																							property: 'posicionFase',
																							direction: 'ASC'
																						}]        
																				}),
																				columns  : [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Orden Actual</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																				stripeRows : true
																			})
																	],
																	dockedItems: {
																		xtype: 'toolbar',
																		dock: 'bottom',
																		items: ['->', // Fill
																		{
																			text: 'Guardar',
																			iconCls: 'icon-save',
																			handler: function(){
																				grid7.getSelectionModel().deselectAll();
																				grid7.getSelectionModel().selectAll();
																				longitud= grid7.getSelectionModel().getSelection().length;
																				lista_fases = new Array(longitud);
																				i=0;
																				while(i < longitud)
																				{											
																					lista_fases[i]=grid7.getSelectionModel().getSelection()[i].data['id'];
																					i=i+1;
																				}	
																				grid7.getSelectionModel().deselectAll();											
																				Ext.Ajax.request({
																					url: 'reordenar_fases',
																					params: {
																						id_proyecto: id_Proyecto,
																						lista_fases:Ext.encode(lista_fases)
																					},
																					success: function() {
																						Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																											msg: 'Fases reordenadas correctamente', 	icon: 'ext-mb-ok',
																						});
																						winImportarFases.close();
																						PanelFases.child('#fasesgrid').onRefresh();	
																					},
																					failure: function() {
																						Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																										msg: 'Error en la reordenacion de fases ', 	icon: 'ext-mb-error',
																						});
																					}
																				})
																		}
																		},
																		{
																			text: 'Cerrar',
																			iconCls: 'icon-cerrar',
																			handler: function(){winReordenar.close();
																								PanelFases.child('#fasesgrid').onRefresh();}
																		}]
																	}
															}),{
															border: false
														}]
													});					
													winReordenar.show();						
												},
												ddImportar: function(data){
													var grid7, grid8;
													winImportarFases = Ext.create('widget.window', {
														iconCls: 'icon-importar',
														x: 400, y: 260,
														title: 'Importar Fases al proyecto: ' + nombreProyecto,
														closable: false,
														plain: true,
														layout: 'fit',
														items: [PanelTipoItem = Ext.create('Ext.Panel', {
																	width : 550,	height : 250,
																	layout  : {	type: 'hbox',	align: 'stretch'	},
																	defaults  : { flex : 1 }, 
																	items : [
																			grid7 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'firstGridDDGroup',
																							dropGroup: 'secondGridDDGroup'
																					},
																				},
																				store: Ext.create('Ext.data.Store', {
																							model: 'DataFase',
																							autoLoad: true,
																							proxy: {
																								type: 'ajax',
																								url: 'listar_no_fases_por_proyecto/' + id_Proyecto,
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},

																							}      
																						}),
																				columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Fases de otros proyectos</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																				stripeRows : true
																			}),
																			grid8 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'secondGridDDGroup',
																							dropGroup: 'firstGridDDGroup'
																						},
																				},
																				store: Ext.create('Ext.data.Store', {
																						model: 'DataFase',
																						autoLoad: true,
																						proxy: {
																							type: 'ajax',
																							url: 'listar_fases_por_proyecto',
																							reader: {
																								type: 'json',
																								successProperty: 'success',
																								root: 'data',
																								messageProperty: 'message'
																							},

																						}       
																				}),
																				columns  : [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Fases Importadas</b>", flex: 1, sortable: true, dataIndex: 'nombreFase'} ],
																				stripeRows : true
																			})
																	],
																	dockedItems: {
																		xtype: 'toolbar',
																		dock: 'bottom',
																		items: ['->', // Fill
																		{
																			text: 'Guardar',
																			iconCls: 'icon-save',
																			handler: function(){
																				grid8.getSelectionModel().selectAll();
																				longitud= grid8.getSelectionModel().getSelection().length;
																				lista_fases = new Array(longitud);
																				i=0;
																				while(i < longitud)
																				{											
																					lista_fases[i]=grid8.getSelectionModel().getSelection()[i].data['id'];
																					i=i+1;
																				}	
																				grid8.getSelectionModel().deselectAll();											
																				Ext.Ajax.request({
																					url: 'importar_fases',
																					params: {
																						id_proyecto: id_Proyecto,
																						lista_fases:Ext.encode(lista_fases)
																					},
																					success: function() {
																						Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																											msg: 'Fases importadas correctamente', 	icon: 'ext-mb-ok',
																						});
																						winImportarFases.close();
																						PanelFases.child('#fasesgrid').onRefresh();	
																					},
																					failure: function() {
																						Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																										msg: 'Error en la importacion de fases ', 	icon: 'ext-mb-error',
																						});
																					}
																				})
																		}
																		},
																		{
																			text: 'Cerrar',
																			iconCls: 'icon-cerrar',
																			handler: function(){winImportarFases.close()}
																		}]
																	}
															}),{
															border: false
														}]
													});					
													winImportarFases.show();						
												},
												ddTiposItem: function(data){
													var grid7, grid8;
													nombre = extraer(data, '&nombreFase=', '&descripcion=');		idFase = extraer(data, 'id=', '&');
													winTipoItemdd = Ext.create('widget.window', {
														iconCls: 'icon-tipoItem',
														x: 400, y: 260,
														title: 'Drag & Drop - Asignar Tipos de Item a la Fase: ' + nombre,
														closable: false,
														plain: true,
														layout: 'fit',
														items: [PanelTipoItem = Ext.create('Ext.Panel', {
																	width : 550,	height : 250,
																	layout  : {	type: 'hbox',	align: 'stretch'	},
																	defaults  : { flex : 1 }, 
																	items : [
																			grid7 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'firstGridDDGroup',
																							dropGroup: 'secondGridDDGroup'
																					},
																				},
																				store: Ext.create('Ext.data.Store', {
																							model: 'DataTipoItem',
																							autoLoad: true,
																							proxy: {
																								type: 'ajax',
																								url: 'listar_no_tipo_items_por_fase/'+ idFase,
																								reader: {
																									type: 'json',
																									successProperty: 'success',
																									root: 'data',
																									messageProperty: 'message'
																								},

																							}      
																						}),
																				columns:  [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Tipos de Items No Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																				stripeRows : true
																			}),
																			grid8 = Ext.create('Ext.grid.Panel', {
																				multiSelect: true,
																				viewConfig: {
																					plugins: {
																							ptype: 'gridviewdragdrop',
																							dragGroup: 'secondGridDDGroup',
																							dropGroup: 'firstGridDDGroup'
																						},
																				},
																				store: Ext.create('Ext.data.Store', {
																						model: 'DataTipoItem',
																						autoLoad: true,
																						proxy: {
																							type: 'ajax',
																							url: 'listar_tipo_items_por_fase/'+ idFase,
																							reader: {
																								type: 'json',
																								successProperty: 'success',
																								root: 'data',
																								messageProperty: 'message'
																							},

																						}       
																				}),
																				columns  : [ {text: "Id", hidden:true, dataIndex: 'id'},
																							{text: "<b>Tipos de Item Asignados</b>", flex: 1, sortable: true, dataIndex: 'nombreTipoItem'} ],
																				stripeRows : true
																			})
																	],
																	dockedItems: {
																		xtype: 'toolbar',
																		dock: 'bottom',
																		items: ['->', // Fill
																		{
																			text: 'Guardar',
																			iconCls: 'icon-save',
																			handler: function(){
																				grid8.getSelectionModel().selectAll();
																				longitud= grid8.getSelectionModel().getSelection().length;
																				lista_tiposItem = new Array(longitud);
																				i=0;
																				while(i < longitud)
																				{											
																					lista_tiposItem[i]=grid8.getSelectionModel().getSelection()[i].data['id'];
																					i=i+1;
																				}	
																				grid8.getSelectionModel().deselectAll();											
																				Ext.Ajax.request({
																					url: 'asignarTiposItem_desdeABMProyecto',
																					params: {
																						id_fase: idFase,
																						lista_tiposItem:Ext.encode(lista_tiposItem)
																					},
																					success: function() {
																						Ext.Msg.show({ 		title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
																											msg: 'Tipos de Item asignados correctamente', 	icon: 'ext-mb-ok',
																						});	
																					},
																					failure: function() {
																						Ext.Msg.show({	title: '<br><p align="center"><b>ALPHA MANAGER</b></p>',   
																										msg: 'Error en la asignacion de Tipos de Item ', 	icon: 'ext-mb-error',
																						});
																					}
																				})
																		}
																		},
																		{
																			text: 'Cerrar',
																			iconCls: 'icon-cerrar',
																			handler: function(){winTipoItemdd.close()}
																		}]
																	}
															}),{
															border: false
														}]
													});					
													winTipoItemdd.show();						
												}
											}
											//height: 150,
										}, {
											region: 'center',
											xtype: 'fasesgrid',            
											itemId: 'fasesgrid',
											title: 'Lista de Fases',
											flex: 1,        
											//width: 480,
											//height: 250,
											store: Ext.create('Ext.data.Store', {
													model: 'Writer.Fases',
													autoLoad: true,
													autoSync: true,
													proxy: {
														type: 'ajax',
														url: 'listar_fases_lider_proyecto/'+ id_Proyecto,
														reader: {
															type: 'json',
															successProperty: 'success',
															root: 'data',
															messageProperty: 'message'
														},
														writer: {
															type: 'json',
															writeAllFields: false,
															root: 'data'
														},

													},
													
													sorters: [{
														property: 'posicionFase',
														direction: 'ASC'
													}]        
												}),
											listeners: {
												selectionchange: function(selModel, selected) {
													PanelFases.child('#Faseform').setActiveRecord(selected[0] || null);
												},
												salir: function() {
													winFases.close();
													win.show();
													win.child('#grid').onRefresh();
												}
											}
										}]
									})
									
							]
					});	
					PanelFases.child('#Faseform').down('#idProy').setValue(id_Proyecto);
					if(estado == 'Iniciado' || estado == 'Terminado'){	
						PanelFases.child('#Faseform').down('#reordenar').hide(); 
						PanelFases.child('#Faseform').down('#reordenar').disable();
						PanelFases.child('#Faseform').down('#importar').hide(); 
						PanelFases.child('#Faseform').down('#importar').disable();
						PanelFases.child('#Faseform').down('#editar').hide(); 
						PanelFases.child('#Faseform').down('#editar').disable();
						PanelFases.child('#Faseform').down('#nuevo').hide(); 
						PanelFases.child('#Faseform').down('#nuevo').disable();
						PanelFases.child('#Faseform').down('#delete').hide(); 
						PanelFases.child('#Faseform').down('#delete').disable();
					}
					//getPermisosFases();
					winFases.show();
					
					
				}	
			}
		}, {
			region: 'center',
			xtype: 'writergrid',            
			itemId: 'grid',
			title: 'Lista de Proyectos',

			flex: 1,        
			store: store,
			listeners: {
				selectionchange: function(selModel, selected) {
					win.child('#form').setActiveRecord(selected[0] || null);
				}
			}
		}]
	});
	win.show();
	//getPermisos();
    

    
});

function extraer(texto, etqini, etqfin){
		var ind0, ind1, parte ="";
		ind0 = texto.indexOf(etqini);
		if (ind0 >=0){
			ind1 = texto.indexOf(etqfin);
			if (ind1>ind0)
				parte = texto.substring(ind0+etqini.length, ind1);
		}
		return parte;
}
